/**
 *	@file	pgtel_sys.h
 *	@brief	ポケギア 電話アプリ　システムヘッダ
 *	@author	Miyuki Iwasawa
 *	@date	07.06.20
 */

#ifndef __H_PGTEL_SYS_H__
#define __H_PGTEL_SYS_H__

typedef struct _PGTEL_SYS_WORK PGTEL_SYS_WORK;

#include "system/window.h"
#include "pgtel_def.h"
#include "system/wordset.h"
#include "system/selbox.h"
#include "pm_tel.h"
#include "pgtel_list.h"

///メッセージデータ統合構造体
typedef struct _PGTEL_MSG{
	MSGDATA_MANAGER *gMan;

	WORDSET* wset;		///<ワーク
	STRBUF	*tmp;		///<汎用
	STRBUF	*msg;		///<汎用
	STRBUF	*exp[MIDX_EXP_MAX];	///<説明
	u8	msg_spd;	///<メッセージスピード
	u8	dmy[3];	///<padding
}PGTEL_MSG;

typedef struct SELBOX_INIT_PARAM{
	u8	menu_ct:3;
	u8	width:5;
	u8	msg_id;
	u8	px;
	u8	py;
}SELBOX_INIT_PARAM;

struct _PGTEL_SYS_WORK{
	int heapID;	///<heapID
	int	main_seq;	///<main seq id
	int	sub_seq;	///<sub seq id

	PGEAR_SYS_WORK* sys;	///<システムワークへのポインタ

	u8	input_f;	///<インプットフラグ
	u8	skin;		///<選択しているスキンナンバー
	u8	ct;
	u8	msg_idx;	///<メッセージindex
	PGTEL_MSG		msgDat;	///<メッセージデータ
	GF_BGL_BMPWIN	win[WIN_MAX];
	CLACT_WORK_PTR	pAct[PGTEL_ACTMAX];
	SELBOX_SYS*		sbox;

	PMTEL_DATA_MAN*	pTelSys;	///<電話データ型

	u8	target;		///<カレントターゲット
	u8	ev_type;	///<イベントタイプ
	u8	ev_id;		///<イベントタイプID
	u8	is_call;	///<着信モードフラグ

	u8	tmpPos;
	//電話帳リスト制御
	u8				entryNum;	///<電話帳のエントリー数
	PMTEL_NUMBER*	tbook;	///<電話帳データ
	PGTEL_NUMBER_LIST* pBook;	///<電話番号管理リスト
	PGTEL_NUMBER_LIST* ps_book;
	PGTEL_NUMBER_LIST* pe_book;

	PGTEL_LIST_VIEW	vList;	///<ViewList制御構造体

	//選択ボックスリスト
	BMPLIST_DATA*	slist[SBOX_ID_MAX];	///<選択ボックスリスト
	SELBOX_WORK*	list_wk;	///<選択ボックスワーク

	///グラフィックリソース
	void*	pSBufBg;
	NNSG2dScreenData*	pSBg;
};

typedef enum{
 PGTEL_SEQ_INIT,
 PGTEL_SEQ_MAIN,
 PGTEL_SEQ_END,
 PGTEL_SEQ_TALK_START,
 PGTEL_SEQ_TALK_END,
 PGTEL_SEQ_TALK_SET,
 PGTEL_SEQ_TALK_WAIT,
 PGTEL_SEQ_LIST_SELECT,
 PGTEL_SEQ_LIST_SORT_MODE,
 PGTEL_SEQ_LIST_SORT,
 PGTEL_SEQ_ALL_FADEIN,
 PGTEL_SEQ_ALL_FADEOUT,
 PGTEL_SEQ_VIEW_FADEIN,
 PGTEL_SEQ_VIEW_FADEOUT,
 PGTEL_SEQ_APP_EXIT,

}PGTEL_SEQ_DEF;

//選択ボックス初期化パラメータ
extern const SELBOX_INIT_PARAM DATA_PGTelSBoxInitParam[];

#endif	//__H_PGTEL_SYS_H__